本身是一位 React 開發者,平時的工作需求大多不需要使用 TypeScript,因此對 TypeScript 一直是處於矇矇懂懂的狀態。
看到這次鐵人賽的開賽報名,很快地就想到了這個主題,想趁此機會深入了解 TypeScript,並且學習如何將 TypeScript 結合 React 應用。
TypeScript 並不是一種全新的語言,它是 JavaScript 的超集,簡單來說,它完全兼容 JavaScript 的語法,同時增加了類型檢查等功能,當然這樣的方式有利有弊,以下是 TypeScript 與 JavaScript 的一些主要優缺點:
雖然整體來說 TypeScript 的優勢大於劣勢,但我個人認為還是需要參考專案的規模與需求,來決定是否需要使用 TypeScript 來開發。
在接下來的 30 天,我將會先從一般的 TypeScript 基本觀念開始,接著延伸到結合 React 的使用,希望在這 30 天也能夠幫助同樣在學習 TypeScript 的人。
靜態型別(Static Typing)
在程式碼編寫和編譯時就已經決定好變數的型別,並且在程式執行期間不會改變,像是 TypeScript 這樣的靜態型別語言,會要求開發者在定義變數時指定其型別,並在編譯階段進行型別檢查。:
let age: number = 25;
age
在編譯時已經被指定為 number
,如果試圖將 string
賦值給 age
,編譯器就會在編譯時報錯。
動態型別(Dynamic Typing)
與靜態型別相反,動態型別的語言中,變數的型別是在程式執行時才確定的,並且可以隨時改變。例如,JavaScript 就是一種動態型別語言,變數不需要在定義時指定型別,並且可以在程式運行期間改變其型別:
let age = 30; // 初始是 number
age = "thirty"; // 現在變成 string